This is for consistency.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
if ( op.isa_irq > 15 )
return -EINVAL;
- d = get_domain_by_id(op.domid);
+ d = rcu_lock_domain_by_id(op.domid);
if ( d == NULL )
return -ESRCH;
viosapic_set_irq(d, op.isa_irq, op.level);
out:
- put_domain(d);
+ rcu_unlock_domain(d);
return rc;
}
if ( (op.domain > 0) || (op.bus > 0) || (op.device > 31) || (op.intx > 3) )
return -EINVAL;
- d = get_domain_by_id(op.domid);
+ d = rcu_lock_domain_by_id(op.domid);
if ( d == NULL )
return -ESRCH;
viosapic_set_pci_irq(d, op.device, op.intx, op.level);
out:
- put_domain(d);
+ rcu_unlock_domain(d);
return rc;
}
return -EINVAL;
if (a.domid == DOMID_SELF) {
- d = get_current_domain();
+ d = rcu_lock_current_domain();
}
else if (IS_PRIV(current->domain)) {
- d = get_domain_by_id(a.domid);
+ d = rcu_lock_domain_by_id(a.domid);
if (d == NULL)
return -ESRCH;
}
rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
}
- put_domain(d);
+ rcu_unlock_domain(d);
break;
}
case XEN_DOMCTL_getmemlist:
{
unsigned long i;
- struct domain *d = get_domain_by_id(op->domain);
+ struct domain *d = rcu_lock_domain_by_id(op->domain);
unsigned long start_page = op->u.getmemlist.start_pfn;
unsigned long nr_pages = op->u.getmemlist.max_pfns;
uint64_t mfn;
op->u.getmemlist.num_pfns = i;
if (copy_to_guest(u_domctl, op, 1))
ret = -EFAULT;
-
- put_domain(d);
+ rcu_unlock_domain(d);
}
break;
case XEN_DOMCTL_arch_setup:
{
xen_domctl_arch_setup_t *ds = &op->u.arch_setup;
- struct domain *d = get_domain_by_id(op->domain);
+ struct domain *d = rcu_lock_domain_by_id(op->domain);
if ( d == NULL) {
ret = -EINVAL;
}
}
- put_domain(d);
+ rcu_unlock_domain(d);
}
break;
{
struct domain *d;
ret = -ESRCH;
- d = get_domain_by_id(op->domain);
+ d = rcu_lock_domain_by_id(op->domain);
if ( d != NULL )
{
ret = shadow_mode_control(d, &op->u.shadow_op);
- put_domain(d);
+ rcu_unlock_domain(d);
if (copy_to_guest(u_domctl, op, 1))
ret = -EFAULT;
}
unsigned int lp = fp + np - 1;
ret = -ESRCH;
- d = get_domain_by_id(op->domain);
+ d = rcu_lock_domain_by_id(op->domain);
if (unlikely(d == NULL))
break;
ret = ioports_deny_access(d, fp, lp);
}
- put_domain(d);
+ rcu_unlock_domain(d);
}
break;
struct vcpu *v;
ret = -ESRCH;
- d = get_domain_by_id(op->domain);
+ d = rcu_lock_domain_by_id(op->domain);
if ( d == NULL )
break;
}
sendtrigger_out:
- put_domain(d);
+ rcu_unlock_domain(d);
}
break;
case XEN_DOMCTL_set_opt_feature:
{
struct xen_ia64_opt_feature *optf = &op->u.set_opt_feature.optf;
- struct domain *d = get_domain_by_id(op->domain);
+ struct domain *d = rcu_lock_domain_by_id(op->domain);
if (d == NULL) {
ret = -EINVAL;
}
ret = domain_opt_feature(d, optf);
- put_domain(d);
+ rcu_unlock_domain(d);
}
break;
if (flags & (ASSIGN_nocache | ASSIGN_pgc_allocated))
return -EINVAL;
- rd = get_domain_by_id(domid);
+ rd = rcu_lock_domain_by_id(domid);
if (unlikely(rd == NULL)) {
switch (domid) {
case DOMID_XEN:
return -ESRCH;
}
BUG_ON(rd == NULL);
- get_knownalive_domain(rd);
+ rcu_lock_domain(rd);
}
if (unlikely(rd == d))
//don't update p2m table because this page belongs to rd, not d.
perfc_incr(dom0vp_add_physmap);
out1:
- put_domain(rd);
+ rcu_unlock_domain(rd);
return error;
}
if (copy_from_guest(&xatp, arg, 1))
return -EFAULT;
- if (xatp.domid == DOMID_SELF) {
- d = get_current_domain();
- }
+ if (xatp.domid == DOMID_SELF)
+ d = rcu_lock_current_domain();
else if (!IS_PRIV(current->domain))
return -EPERM;
- else if ((d = get_domain_by_id(xatp.domid)) == NULL)
+ else if ((d = rcu_lock_domain_by_id(xatp.domid)) == NULL)
return -ESRCH;
/* This hypercall is used for VT-i domain only */
if (!VMX_DOMAIN(d->vcpu[0])) {
- put_domain(d);
+ rcu_unlock_domain(d);
return -ENOSYS;
}
}
if (mfn == 0) {
- put_domain(d);
+ rcu_unlock_domain(d);
return -EINVAL;
}
out:
UNLOCK_BIGLOCK(d);
- put_domain(d);
+ rcu_unlock_domain(d);
break;
}